#ifndef CSYSTEM_H
#define CSYSTEM_H

#include<list>
#include "deque"
#include "vector"
#include "PARStemCell.h"
#include "main.h"
#include "CStemCell.h"
#include "vector"

class CSystem{
private:
    int sys_NumCell;		// Number of total cells in the animal (in unit 10^6).
    int sys_NumCellResting;     // Number of cells in the resting phase
    int sys_NumCellProlif;      // Number of cells in the proliferation phase
    double sys_u;          // Microenvironemnt value
    std::list<CStemCell> sys_cells; // Cells.
    PARStemCell sys_par; //初始化参数
    std::vector<std::array<double,NUMMUTPAR>> sys_genemat;

	void OutPutSys(double step);
public:
	~CSystem();
	CSystem(int N0);
    double sys_varsigma;//环境变量
    double sys_mutationrate;
	void Run();
    void readGeneMat(std::string filename);
    void outPutGeneRecord();
    bool SystemUpdate(double t);
};

#endif
